8367646: [GenShen] Control thread may overwrite gc cancellation cause set by mutator #27662
+10
−2
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I believe the following events could lead to this assertion failure:
shenandoah_concurrent_gc
shenandoah_alloc_failure
1
and decides to unconditionally clear the cancellation causeThe proposed fix here has the control thread use a CAS operation to only clear the gc if the existing value is
shenandoah_concurrent_gc
. This will stop the control thread from erroneously changing the value if a mutator has already set it toshenandoah_alloc_failure
. A mutator thread may still have an allocation failure after the control thread has cleared the cancellation, but this is normal and expected.Progress
Issue
Reviewers
Reviewing
Using
git
Checkout this PR locally:
$ git fetch https://git.openjdk.org/jdk.git pull/27662/head:pull/27662
$ git checkout pull/27662
Update a local copy of the PR:
$ git checkout pull/27662
$ git pull https://git.openjdk.org/jdk.git pull/27662/head
Using Skara CLI tools
Checkout this PR locally:
$ git pr checkout 27662
View PR using the GUI difftool:
$ git pr show -t 27662
Using diff file
Download this PR as a diff file:
https://git.openjdk.org/jdk/pull/27662.diff
Using Webrev
Link to Webrev Comment